Angular অ্যাপ্লিকেশন তৈরি করার পর, এটি বিভিন্ন পরিবেশে (যেমন লোকাল সার্ভার, স্টেজিং, প্রোডাকশন) রান করানোর জন্য তৈরি করা হয়। এই প্রক্রিয়াকে বিল্ডিং এবং ডিপ্লয়মেন্ট বলা হয়। Angular CLI এই প্রক্রিয়া অনেক সহজ করে দিয়েছে, যেখানে কমান্ড লাইন থেকে বিল্ড করা এবং ডিপ্লয়মেন্টের জন্য প্রয়োজনীয় ফাইল তৈরি করা যায়।
Angular অ্যাপ্লিকেশন বিল্ডিং করা মানে হল অ্যাপ্লিকেশনটি সঠিকভাবে কম্পাইল করা, মিনিফাই করা এবং প্যাকেজ করা, যাতে এটি প্রোডাকশন পরিবেশে চালানো যায়।
Angular অ্যাপ্লিকেশন বিল্ড করার জন্য CLI এর ng build
কমান্ড ব্যবহার করা হয়। এটি অ্যাপ্লিকেশনকে কম্পাইল করে এবং প্রোডাকশন পরিবেশের জন্য প্রস্তুত করে। এর সাথে আরও কিছু অপশন রয়েছে যা বিভিন্ন পরিবেশের জন্য কাস্টমাইজেশন করতে সাহায্য করে।
ng build --prod
এখানে, --prod
ফ্ল্যাগটি প্রোডাকশন বিল্ড তৈরি করার জন্য ব্যবহৃত হয়। এটি অ্যাপ্লিকেশনকে মিনিফাই করে, অপ্রয়োজনীয় কোড অপ্টিমাইজ করে এবং প্রোডাকশন-ভিত্তিক সেটিংস অ্যাপ্লাই করে।
বিল্ড সফল হলে, Angular CLI একটি dist/
ডিরেক্টরি তৈরি করবে, যেখানে বিল্ড হওয়া সমস্ত ফাইল সংরক্ষিত থাকবে। সাধারণত, এই ফাইলগুলির মধ্যে থাকবে:
এছাড়া, আপনি environment ফাইলগুলির মাধ্যমে আলাদা আলাদা পরিবেশে কনফিগারেশন সেট করতে পারেন।
ডিপ্লয়মেন্ট হলো অ্যাপ্লিকেশনটি একটি সার্ভারে বা ক্লাউড পরিবেশে পাঠানো, যেখানে এটি ব্যবহারকারীদের কাছে অ্যাক্সেসযোগ্য হবে। Angular অ্যাপ্লিকেশনকে বিভিন্ন পরিবেশে ডিপ্লয় করা যায়, যেমন:
Angular অ্যাপ্লিকেশন ডিপ্লয় করতে নিম্নলিখিত স্টেপগুলো অনুসরণ করা যেতে পারে:
Angular অ্যাপ্লিকেশনকে GitHub Pages এ ডিপ্লয় করা একটি সাধারণ এবং দ্রুত পদ্ধতি। এটি স্ট্যাটিক ওয়েবসাইট হোস্ট করার জন্য ব্যবহৃত হয়।
প্রথমে, ng build --prod
কমান্ড ব্যবহার করে অ্যাপ্লিকেশন বিল্ড করতে হবে।
ng build --prod --base-href "https://<username>.github.io/<repo-name>/"
এখানে, <username>
এবং <repo-name>
আপনার GitHub রেপোজিটরি নাম হবে।
আপনার GitHub অ্যাকাউন্টে একটি নতুন রেপোজিটরি তৈরি করুন, যেখানে আপনি আপনার Angular অ্যাপ্লিকেশন হোস্ট করবেন।
বিল্ড করা dist/
ফোল্ডারের মধ্যে সমস্ত ফাইল GitHub রেপোজিটরিতে পুশ করুন।
cd dist/<project-name>
git init
git remote add origin https://github.com/<username>/<repo-name>.git
git add .
git commit -m "Initial commit"
git push -u origin master
GitHub রেপোজিটরির সেটিংসে গিয়ে GitHub Pages সেকশনে গিয়ে main branch বা gh-pages সিলেক্ট করুন এবং স্ট্যাটিক ফাইল ডিরেক্টরি হিসেবে dist/
নির্দেশ করুন।
এবার, আপনার অ্যাপ্লিকেশন GitHub Pages-এ হোস্ট হয়ে যাবে এবং আপনি সরাসরি URL দিয়ে অ্যাক্সেস করতে পারবেন।
Firebase Hosting ব্যবহার করেও Angular অ্যাপ্লিকেশন ডিপ্লয় করা যায়। Firebase একটি জনপ্রিয় ক্লাউড সার্ভিস যা দ্রুত এবং সহজে অ্যাপ্লিকেশন হোস্টিং প্রদান করে।
Firebase CLI ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:
npm install -g firebase-tools
Firebase কনসোলে গিয়ে একটি নতুন প্রোজেক্ট তৈরি করুন এবং firebase init
কমান্ড চালান:
firebase init
এখানে, Firebase Hosting এর জন্য সেটআপ দিন এবং বিল্ড ডিরেক্টরি হিসেবে dist/
নির্দেশ করুন।
Firebase Hosting এ ডিপ্লয় করতে firebase deploy
কমান্ডটি চালান:
firebase deploy
এটা আপনার Angular অ্যাপ্লিকেশনকে Firebase হোস্টিং-এ আপলোড করবে এবং আপনি URL এর মাধ্যমে অ্যাপ্লিকেশন এক্সেস করতে পারবেন।
আপনি যদি আপনার অ্যাপ্লিকেশন কোনো Apache অথবা Nginx সার্ভারে হোস্ট করতে চান, তাহলে ng build --prod কমান্ড চালিয়ে অ্যাপ্লিকেশন বিল্ড করে সেই ফাইলগুলো সার্ভারের নির্দিষ্ট ডিরেক্টরিতে আপলোড করতে হবে।
এছাড়া, যদি SPA (Single Page Application) ব্যবহার করেন, তবে আপনাকে 404 error পৃষ্ঠার জন্য বিশেষ কনফিগারেশন করতে হতে পারে যাতে অ্যাপ্লিকেশন রাউটিং সঠিকভাবে কাজ করে।
Angular অ্যাপ্লিকেশন বিল্ড এবং ডিপ্লয়মেন্ট অত্যন্ত গুরুত্বপূর্ণ দুটি প্রক্রিয়া, যা আপনার অ্যাপ্লিকেশনকে প্রোডাকশনে চলমান রাখতে সহায়তা করে। Angular CLI এর মাধ্যমে এই প্রক্রিয়া সহজ এবং কার্যকরভাবে সম্পন্ন করা সম্ভব, যা আপনাকে ডিপ্লয়মেন্টে দ্রুত সহায়তা প্রদান করে।
প্রোডাকশন পরিবেশে Angular অ্যাপ্লিকেশনটি ডিপ্লয় করার আগে, আপনাকে অ্যাপ্লিকেশনটি বিল্ড করতে হবে যাতে এটি অপটিমাইজড এবং প্রস্তুত থাকে। Angular CLI এ ng build --prod
কমান্ড ব্যবহার করে অ্যাপ্লিকেশনটি প্রোডাকশনের জন্য বিল্ড করা যায়। এই বিল্ডটি আপনার অ্যাপ্লিকেশনটি কোড মিনিফিকেশন, অপ্রয়োজনীয় কোড অপসারণ, এবং পারফরম্যান্স উন্নতির জন্য বিভিন্ন অপটিমাইজেশন অন্তর্ভুক্ত করবে।
ng build --prod
কমান্ডng build --prod
কমান্ডটি ব্যবহার করার মাধ্যমে অ্যাপ্লিকেশনটি প্রোডাকশনের জন্য প্রস্তুত করা হয়। এটি কোড মিনিফিকেশন, গাঞ্জাম কোড অপটিমাইজেশন, এবং প্রোডাকশন পরিবেশের জন্য অন্যান্য সেটিংস সক্রিয় করে।
ng build --prod
এই কমান্ডটি রান করার পর, Angular CLI:
Ahead-of-Time (AOT)
কম্পাইলেশন)।নোট: --prod
ফ্ল্যাগ ব্যবহার করার ফলে Angular স্বয়ংক্রিয়ভাবে AOT কম্পাইলেশন, Tree Shaking, এবং Minification সক্রিয় করবে।
ng build --prod
কনফিগারেশনআপনার angular.json
ফাইলটি প্রোডাকশন বিল্ডের জন্য কনফিগার করা থাকবে। যখন আপনি ng build --prod
চালান, Angular CLI এই কনফিগারেশন ব্যবহার করবে:
"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"buildOptimizer": true,
"fileReplacements": [
{
"src": "src/environments/environment.ts",
"replaceWith": "src/environments/environment.prod.ts"
}
]
}
}
optimization
: কোড অপটিমাইজেশন সক্ষম করে (যেমন: মিনিফিকেশন)।outputHashing
: বিল্ড ফাইলগুলিতে হ্যাশ কোড যোগ করে, যা ক্যাশিং সমস্যাগুলি এড়াতে সাহায্য করে।sourceMap
: প্রোডাকশন বিল্ডে সোর্স ম্যাপ তৈরি করবে না।extractCss
: CSS ফাইলগুলো আলাদা করে তৈরি করবে।aot
: Ahead-of-Time (AOT) কম্পাইলেশন সক্ষম করবে।buildOptimizer
: Angular অ্যাপ্লিকেশনের সাইজ কমাতে অপটিমাইজেশন প্রয়োগ করবে।fileReplacements
: এটি environment.ts
ফাইলের পরিবর্তে environment.prod.ts
ফাইল ব্যবহার করবে, যাতে প্রোডাকশন পরিবেশে আলাদা কনফিগারেশন ব্যবহৃত হয়।ng build --prod
কমান্ডটি চালানোর পর, আপনার অ্যাপ্লিকেশনটি dist/
ফোল্ডারে তৈরি হবে। এই ফোল্ডারের মধ্যে থাকবে:
আপনি এই dist/
ফোল্ডারটি আপনার সার্ভারে আপলোড করতে পারবেন।
এটি নিশ্চিত করতে হবে যে প্রোডাকশন পরিবেশের জন্য সঠিক কনফিগারেশন ব্যবহার করা হচ্ছে। এজন্য আপনি environment.prod.ts
ফাইলটি চেক করতে পারেন, যেখানে আপনি বিভিন্ন API URL বা কনফিগ সেটিংস পরিবর্তন করতে পারবেন।
src/environments/environment.prod.ts
ফাইলের উদাহরণ:
export const environment = {
production: true,
apiUrl: 'https://api.example.com/'
};
এটি ডেভেলপমেন্টের জন্য environment.ts
ফাইলের বিকল্প হবে এবং প্রোডাকশন পরিবেশে এটি ব্যবহার করা হবে।
একবার আপনি প্রোডাকশন বিল্ড তৈরি করলে, আপনি এটিকে আপনার পছন্দের সার্ভারে ডেপ্লয় করতে পারেন। এটি সাধারণত ওয়েব হোস্টিং সার্ভিস বা ক্লাউড প্ল্যাটফর্ম (যেমন, Firebase Hosting, AWS S3, Netlify বা Heroku) এ হোস্ট করা হয়ে থাকে।
Firebase CLI ইনস্টল করুন:
npm install -g firebase-tools
Firebase-এ লগইন করুন:
firebase login
আপনার অ্যাপ্লিকেশনটি ডিপ্লয় করুন:
firebase deploy
এটি অ্যাপ্লিকেশনটি Firebase Hosting-এ ডিপ্লয় করবে এবং আপনি একটি URL পাবেন যেখানে অ্যাপ্লিকেশনটি দেখতে পারবেন।
প্রোডাকশনের জন্য Angular অ্যাপ্লিকেশন বিল্ড করার সময় ng build --prod
কমান্ড ব্যবহার করা হয়, যা অ্যাপ্লিকেশনটি অপটিমাইজ, মিনিফাই এবং AOT কম্পাইলেশনের মাধ্যমে প্রোডাকশনের জন্য প্রস্তুত করে। এটি পারফরম্যান্স উন্নত করে এবং সার্ভারে ডিপ্লয় করার জন্য প্রস্তুত থাকে।
Angular অ্যাপ্লিকেশন অপটিমাইজেশন গুরুত্বপূর্ণ, কারণ এটি অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে এবং ডাউনলোড সাইজ কমাতে সহায়ক। Angular অ্যাপ্লিকেশন যদি অপটিমাইজ করা না হয়, তাহলে অ্যাপ্লিকেশন ধীরগতিতে লোড হতে পারে এবং ব্যবহারকারীর অভিজ্ঞতা খারাপ হতে পারে। এখানে, Angular অ্যাপ্লিকেশন অপটিমাইজেশনের জন্য কিছু প্রধান কৌশল আলোচনা করা হবে।
মিনিফিকেশন হল কোড কম্পাইল করার এক প্রক্রিয়া, যেখানে সব অপ্রয়োজনীয় স্পেস, কমেন্টস, এবং ভেরিয়েবল নাম ছোট করে দেওয়া হয়, যা অ্যাপ্লিকেশন সাইজ কমায়। Angular CLI প্রোডাকশন বিল্ডে মিনিফিকেশন এবং অন্যান্য অপটিমাইজেশন স্বয়ংক্রিয়ভাবে প্রয়োগ করে।
ng build --prod
এটি:
Lazy Loading হল এমন একটি প্যাটার্ন, যেখানে শুধুমাত্র প্রয়োজনীয় মডিউলগুলিই লোড করা হয়, যাতে অ্যাপ্লিকেশন প্রথমবার লোড হতে দ্রুত হয়। Angular এ, মডিউলগুলি আলাদা আলাদা লোড করা যায় এবং এটি অ্যাপ্লিকেশন লোডের সময় কমাতে সাহায্য করে।
Angular অ্যাপ্লিকেশন তৈরির সময়, আপনি একটি feature module তৈরি করে, সেটিকে lazy-loaded করতে পারেন।
const routes: Routes = [
{
path: 'dashboard',
loadChildren: () => import('./dashboard/dashboard.module').then(m => m.DashboardModule)
}
];
এখানে, dashboard
মডিউলটি শুধুমাত্র তখনই লোড হবে, যখন ব্যবহারকারী সেই পৃষ্ঠায় নেভিগেট করবে। এর ফলে অ্যাপ্লিকেশনটি প্রাথমিকভাবে দ্রুত লোড হবে এবং প্রয়োজন অনুসারে মডিউল লোড করা হবে।
AOT (Ahead-of-Time) কম্পাইলেশন Angular এর একটি অত্যন্ত গুরুত্বপূর্ণ অপটিমাইজেশন কৌশল। এটি Angular টেমপ্লেট এবং কোডকে বিল্ডের সময় কম্পাইল করে, যাতে অ্যাপ্লিকেশন রানটাইমে আরও দ্রুত লোড হতে পারে।
এটি মূলত টেমপ্লেট কম্পাইলেশন এবং TypeScript কোডের কম্পাইলেশন বিল্ডের সময় সম্পন্ন করে, ফলে ব্রাউজারের জন্য কোড লোড হওয়ার সময় কমে যায়।
Angular CLI স্বাভাবিকভাবে প্রোডাকশন মোডে AOT কম্পাইলেশন সক্রিয় করে থাকে, তবে আপনি চাইলে ng build --prod
কমান্ড ব্যবহার করে এটিকে নিশ্চিত করতে পারেন।
ng build --prod --aot
এটি অ্যাপ্লিকেশনের প্রথম লোড সময় কমিয়ে দেয় এবং এর পারফরম্যান্স বাড়ায়।
Tree Shaking হল একটি প্রক্রিয়া, যেখানে অপ্রয়োজনীয় কোড সরানো হয়। Angular CLI প্রোডাকশন বিল্ডে শুধুমাত্র ব্যবহৃত কোডকে রেখে বাকি কোডগুলি বের করে দেয়, যা অ্যাপ্লিকেশন সাইজ কমায়।
Angular স্বয়ংক্রিয়ভাবে এমন কোড নির্ধারণ করে যা ব্যবহার হচ্ছে না এবং তা গুটিয়ে ফেলে। উদাহরণস্বরূপ, যদি আপনি কোনও লাইব্রেরির ফিচার ব্যবহার না করেন, তাহলে সেই ফিচারের কোড বিল্ডে অন্তর্ভুক্ত হবে না, ফলে অ্যাপ্লিকেশনের সাইজ কমে যাবে।
Environment Configuration ব্যবহার করে আপনি একাধিক পরিবেশের জন্য কনফিগারেশন পৃথক করতে পারেন, যেমন Development, Staging, এবং Production। প্রতিটি পরিবেশের জন্য আলাদা কনফিগারেশন ফাইল ব্যবহার করা হয়, যাতে প্রোডাকশন পরিবেশে অপ্রয়োজনীয় ডিবাগিং তথ্য থাকে না।
export const environment = {
production: true,
apiUrl: 'https://api.example.com'
};
এটি নিশ্চিত করে যে প্রোডাকশন পরিবেশে কোনও অপ্রয়োজনীয় ডিবাগ তথ্য বা লগ থাকবে না এবং এটি আপনার অ্যাপ্লিকেশনকে আরও নিরাপদ এবং দ্রুত করবে।
Gzip Compression ব্যবহার করে আপনার অ্যাপ্লিকেশনের সমস্ত JavaScript এবং CSS ফাইল কম্প্রেস করা যেতে পারে। এটি সাধারণত web server এর মাধ্যমে পরিচালিত হয়, যেমন Apache বা Nginx।
আপনি Nginx বা Apache সার্ভারে gzip
কমপ্রেসন সক্ষম করতে পারেন যাতে আপনার অ্যাপ্লিকেশন ফাইলগুলি কম্প্রেসড আকারে ব্রাউজারে পাঠানো হয়, ফলে ডাটা ট্রান্সফার দ্রুত হয়।
Caching একটি গুরুত্বপূর্ণ কৌশল, যা অ্যাপ্লিকেশন ফাইলগুলি ব্রাউজারে ক্যাশে সংরক্ষণ করতে সাহায্য করে। এটি পরবর্তী বার অ্যাপ্লিকেশন লোড হতে দ্রুত সহায়তা করে।
আপনি ক্যাশ কন্ট্রোল হেডার ব্যবহার করে নির্ধারণ করতে পারেন কবে কোন ফাইল ক্যাশে রাখা হবে এবং কখন নতুন ফাইল লোড করতে হবে।
<filesMatch "\.(js|css|html|json)$">
Header set Cache-Control "max-age=31536000, public"
</filesMatch>
এটি স্ট্যাটিক ফাইলগুলির জন্য দীর্ঘ সময়ের ক্যাশিং নিয়ম নির্ধারণ করে।
অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে ছবি অপটিমাইজেশন অত্যন্ত গুরুত্বপূর্ণ। ছবি কম্প্রেস এবং সঠিক ফরম্যাটে রেন্ডার করা হলে এটি অ্যাপ্লিকেশন সাইজ কমাতে সাহায্য করবে।
Angular অ্যাপ্লিকেশন অপটিমাইজেশন একটি গুরুত্বপূর্ণ প্রক্রিয়া যা পারফরম্যান্স বৃদ্ধি করে, সাইজ কমায়, এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করে। এটার মধ্যে প্রোডাকশন বিল্ড, lazy loading, AOT কম্পাইলেশন, tree shaking, ক্যাশিং এবং ইমেজ অপটিমাইজেশন অন্তর্ভুক্ত রয়েছে। এই কৌশলগুলি অ্যাপ্লিকেশন দ্রুত লোড করতে এবং স্কেল করার জন্য অত্যন্ত গুরুত্বপূর্ণ।
Ahead-of-Time (AOT) কম্পাইলেশন হল Angular অ্যাপ্লিকেশনে একটি গুরুত্বপূর্ণ পারফরম্যান্স অপটিমাইজেশন প্রক্রিয়া। AOT কম্পাইলেশন দ্বারা Angular অ্যাপ্লিকেশনটি রানটাইমে কম্পাইল না হয়ে আগে থেকেই কম্পাইল হয়। এর ফলে অ্যাপ্লিকেশনটি দ্রুত লোড হয়, এবং সঠিকভাবে কার্যকর হয়। Angular AOT কম্পাইলেশন শুধুমাত্র অ্যাপ্লিকেশন ডেভেলপমেন্টের সময় কম্পাইলেশন প্রক্রিয়াটিকে দ্রুত করে না, বরং এটি নিরাপত্তা এবং পারফরম্যান্স উন্নত করতেও সহায়তা করে।
Angular অ্যাপ্লিকেশন দুটি প্রধান ধরনের কম্পাইলেশন পদ্ধতি ব্যবহার করতে পারে:
Angular অ্যাপ্লিকেশনটি AOT মোডে কম্পাইল করার জন্য, আপনি ng build
কমান্ডে --aot
ফ্ল্যাগ ব্যবহার করতে পারেন:
ng build --aot
এটি অ্যাপ্লিকেশনটি AOT মোডে কম্পাইল করবে এবং উৎপাদন পরিবেশের জন্য প্রস্তুত করবে। আপনি যদি অ্যাপ্লিকেশনটি প্রোডাকশন মোডে কম্পাইল করতে চান, তবে --prod
ফ্ল্যাগও ব্যবহার করতে পারেন:
ng build --prod --aot
এই কমান্ডটি অ্যাপ্লিকেশনটিকে প্রোডাকশন মোডে কম্পাইল করবে, যা AOT ছাড়াও অন্যান্য পারফরম্যান্স অপটিমাইজেশন করবে।
নোট: JIT কম্পাইলেশন সাধারণত ডেভেলপমেন্ট পর্যায়ে ব্যবহৃত হয়, যেখানে দ্রুত কোড পরিবর্তন এবং টেস্টিং প্রয়োজন। প্রোডাকশন পরিবেশে AOT কম্পাইলেশন বেশি কার্যকরী।
AOT কম্পাইলেশন Angular অ্যাপ্লিকেশনগুলির পারফরম্যান্স এবং নিরাপত্তা উন্নত করতে একটি অত্যন্ত গুরুত্বপূর্ণ টুল।
Angular একটি ক্লায়েন্ট-সাইড ফ্রেমওয়ার্ক এবং এটি সাধারণত ব্রাউজারে রান করে, যেখানে বিভিন্ন ধরনের UI উপাদান এবং রাউটিং ম্যানেজ করা হয়। তবে, Angular অ্যাপ্লিকেশনকে একটি পূর্ণাঙ্গ অ্যাপ্লিকেশন বানানোর জন্য, আপনাকে সাধারণত একটি ব্যাকএন্ড সার্ভিসের সঙ্গে যুক্ত করতে হয়, যেমন Node.js বা Spring Boot। এই ব্যাকএন্ড সার্ভিসটি সাধারণত RESTful API বা GraphQL API সরবরাহ করে, যার মাধ্যমে Angular ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা এক্সচেঞ্জ করা হয়।
এখানে আমরা আলোচনা করব কিভাবে Angular অ্যাপ্লিকেশনকে Node.js এবং Spring Boot ব্যাকএন্ড সার্ভিসের সাথে ইন্টিগ্রেট করা যায়।
Node.js একটি জাভাস্ক্রিপ্ট রানটাইম যা সার্ভার সাইড অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। Angular অ্যাপ্লিকেশনকে Node.js ব্যাকএন্ড সার্ভিসের সাথে ইন্টিগ্রেট করতে সাধারণত Express.js ব্যবহৃত হয়। Express.js একটি জনপ্রিয় Node.js ফ্রেমওয়ার্ক যা দ্রুত RESTful API তৈরিতে সহায়তা করে।
প্রথমে Node.js এবং Express ইনস্টল করুন:
npm init -y # package.json তৈরি করতে
npm install express cors body-parser
Express.js সার্ভার তৈরি করুন: একটি server.js
ফাইল তৈরি করুন এবং নিচের কোডটি যোগ করুন:
const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
app.use(cors()); // Cross-Origin Resource Sharing
app.use(bodyParser.json());
// Example endpoint
app.get('/api/data', (req, res) => {
res.json({ message: 'Hello from Node.js API' });
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
Node.js সার্ভার রান করুন:
node server.js
Angular অ্যাপ্লিকেশন থেকে Node.js API কল করা: Angular অ্যাপ্লিকেশনে HTTP রিকোয়েস্ট পাঠানোর জন্য HttpClient
মডিউল ব্যবহার করুন।
HttpClientModule
Angular অ্যাপে ইনপোর্ট করুন:import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [ HttpClientModule ],
})
export class AppModule { }
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class DataService {
private apiUrl = 'http://localhost:3000/api/data';
constructor(private http: HttpClient) {}
getData(): Observable<any> {
return this.http.get(this.apiUrl);
}
}
import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
data: any;
constructor(private dataService: DataService) {}
ngOnInit(): void {
this.dataService.getData().subscribe((response) => {
this.data = response;
});
}
}
Spring Boot একটি Java-based ফ্রেমওয়ার্ক যা ব্যাকএন্ড ডেভেলপমেন্টের জন্য ব্যবহৃত হয় এবং এটি RESTful API সরবরাহ করতে সক্ষম। Spring Boot অ্যাপ্লিকেশনকে Angular অ্যাপ্লিকেশনের সাথে ইন্টিগ্রেট করতে আপনি HTTP রিকোয়েস্টের মাধ্যমে ডেটা এক্সচেঞ্জ করতে পারেন।
Spring Boot স্টার্টার ডিপেনডেন্সি ইনস্টল করুন: Spring Initializr ব্যবহার করে একটি Spring Boot প্রজেক্ট তৈরি করুন: Spring Initializr
ডিপেনডেন্সি হিসেবে Spring Web
, Spring Boot DevTools
, এবং Spring Data JPA
নির্বাচন করুন।
Spring Boot অ্যাপ্লিকেশন তৈরি করুন:
একটি কন্ট্রোলার তৈরি করুন, যেমন:
@RestController
@RequestMapping("/api")
public class DataController {
@GetMapping("/data")
public ResponseEntity<Map<String, String>> getData() {
Map<String, String> response = new HashMap<>();
response.put("message", "Hello from Spring Boot API");
return ResponseEntity.ok(response);
}
}
mvn spring-boot:run
অথবা ./mvnw spring-boot:run
কমান্ড দিয়ে Spring Boot অ্যাপ্লিকেশন রান করুন।Angular অ্যাপ্লিকেশন থেকে Spring Boot API কল করা: Angular-এ HttpClient
ব্যবহার করে Spring Boot API থেকে ডেটা ফেচ করা:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class DataService {
private apiUrl = 'http://localhost:8080/api/data';
constructor(private http: HttpClient) {}
getData(): Observable<any> {
return this.http.get(this.apiUrl);
}
}
import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
data: any;
constructor(private dataService: DataService) {}
ngOnInit(): void {
this.dataService.getData().subscribe((response) => {
this.data = response;
});
}
}
যেহেতু Angular (ক্লায়েন্ট) এবং Node.js বা Spring Boot (ব্যাকএন্ড) আলাদা ডোমেইনে হতে পারে, তাই CORS (Cross-Origin Resource Sharing) কনফিগারেশন প্রয়োজন হতে পারে।
Node.js (Express) CORS কনফিগারেশন:
const cors = require('cors');
app.use(cors());
Spring Boot CORS কনফিগারেশন:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**").allowedOrigins("http://localhost:4200");
}
}
Angular এবং ব্যাকএন্ড সার্ভিস (Node.js বা Spring Boot) ইন্টিগ্রেট করার জন্য, আপনাকে HTTP রিকোয়েস্টের মাধ্যমে ডেটা এক্সচেঞ্জ করতে হবে। Node.js এর জন্য Express.js ব্যবহার করা হয়, এবং Spring Boot এর জন্য RESTful API তৈরি করা হয়। Angular থেকে API কল করার জন্য HttpClient ব্যবহার করা হয় এবং CORS কনফিগারেশন নিশ্চিত করা গুরুত্বপূর্ণ।
Angular অ্যাপ্লিকেশন ডিপ্লয় করার জন্য বিভিন্ন ক্লাউড হোস্টিং এবং সার্ভিস রয়েছে, যেমন Firebase, Netlify, এবং GitHub Pages। এগুলো ব্যবহার করে আপনি সহজেই Angular অ্যাপ্লিকেশন হোস্ট এবং ডিপ্লয় করতে পারেন। এখানে আমরা দেখবো কিভাবে আপনি এই তিনটি প্ল্যাটফর্মে Angular অ্যাপ্লিকেশন ডিপ্লয় করবেন।
Firebase একটি গুগল ক্লাউড বেসড সার্ভিস যা ওয়েব অ্যাপ্লিকেশন হোস্টিংয়ের জন্য সহজ এবং স্কেলেবল সমাধান প্রদান করে। Firebase Hosting সহজে Angular অ্যাপ্লিকেশন হোস্ট করতে ব্যবহৃত হয়।
Firebase CLI ইনস্টল করা: Firebase CLI টুলটি ডেভেলপমেন্ট এনভায়রনমেন্টে ইনস্টল করতে হবে। কমান্ড লাইনে এটি ইনস্টল করতে:
npm install -g firebase-tools
Firebase CLI এ লগইন করা: Firebase অ্যাকাউন্টে লগইন করতে:
firebase login
Angular প্রজেক্ট বিল্ড করা: Angular প্রজেক্টটি বিল্ড করতে:
ng build --prod
এটি dist/
ফোল্ডারে প্রোডাকশন বিল্ড তৈরি করবে।
Firebase Hosting কনফিগার করা: Firebase প্রজেক্টের জন্য Firebase CLI ব্যবহার করে কনফিগারেশন শুরু করুন:
firebase init
Hosting
অপশন সিলেক্ট করুন।dist/
ফোল্ডার নির্বাচন করুন (যেটি Angular বিল্ডে তৈরি হয়েছে)।index.html
ফাইলকে 404.html
হিসেবে রিডিরেক্ট করতে "yes" সিলেক্ট করুন।অ্যাপ্লিকেশন ডিপ্লয় করা: Firebase Hosting-এ অ্যাপ্লিকেশন ডিপ্লয় করতে:
firebase deploy
এখানে, Firebase আপনার অ্যাপ্লিকেশনকে হোস্ট করবে এবং আপনি একটি URL পাবেন যা দিয়ে অ্যাপ্লিকেশন অ্যাক্সেস করতে পারবেন।
Netlify একটি জনপ্রিয় প্ল্যাটফর্ম যা Static Websites এবং JAMstack অ্যাপ্লিকেশন হোস্ট করতে ব্যবহৃত হয়। এটি Angular অ্যাপ্লিকেশন হোস্ট করার জন্য খুবই সহজ।
Angular প্রজেক্ট বিল্ড করা: Angular অ্যাপ্লিকেশনটি প্রোডাকশন মোডে বিল্ড করুন:
ng build --prod
এটি dist/
ফোল্ডারে অ্যাপ্লিকেশন বিল্ড করবে।
dist/
ফোল্ডারকে বিল্ড ডিরেক্টরি হিসেবে উল্লেখ করুন।GitHub Pages হলো একটি ফ্রি সার্ভিস যা GitHub রিপোজিটরি থেকে ওয়েবসাইট হোস্ট করতে ব্যবহৃত হয়। আপনি Angular অ্যাপ্লিকেশন GitHub Pages-এ ডিপ্লয় করতে পারেন।
Angular প্রজেক্ট বিল্ড করা: Angular অ্যাপ্লিকেশন প্রোডাকশন মোডে বিল্ড করতে:
ng build --prod --base-href="https://<username>.github.io/<repository-name>/"
এখানে:
<username>
হল আপনার GitHub ইউজারনেম।<repository-name>
হল আপনার রিপোজিটরির নাম।এটি dist/
ফোল্ডারে বিল্ড তৈরি করবে।
GitHub Pages-এ ডিপ্লয় করা: GitHub Pages-এ অ্যাপ্লিকেশন ডিপ্লয় করতে angular-cli-ghpages
টুলটি ব্যবহার করতে পারেন:
প্রথমে angular-cli-ghpages
ইনস্টল করুন:
npm install -g angular-cli-ghpages
এরপর angular-cli-ghpages
দিয়ে ডিপ্লয় করুন:
ngh --dir=dist/<project-name>
এখানে <project-name>
হল আপনার Angular প্রজেক্টের নাম যা dist/
ফোল্ডারে তৈরি হয়েছে।
GitHub Pages URL: একবার ডিপ্লয় হয়ে গেলে, GitHub Pages URL এর মাধ্যমে আপনার অ্যাপ্লিকেশন অ্যাক্সেস করা যাবে, যা হবে:
https://<username>.github.io/<repository-name>/
এখন আপনি Firebase, Netlify, এবং GitHub Pages-এ Angular অ্যাপ্লিকেশন ডিপ্লয় করার প্রক্রিয়া জানেন। প্রতিটি প্ল্যাটফর্মের নিজস্ব সুবিধা এবং কনফিগারেশন রয়েছে, এবং এই তিনটি প্ল্যাটফর্মেই Angular অ্যাপ্লিকেশন ডিপ্লয় করা খুবই সহজ এবং কার্যকরী।
Read more